1. Field of the Invention
The present invention relates to data communication networks and to software applications suitable for use in such networks. More particularly, the present invention relates to a browser-independent and automatic apparatus and method for receiving, installing, and launching applications from a browser on a client computer.
2. The Background Art
As is known to those skilled in the art, the Java(trademark) language is an object-oriented language developed by Sun Microsystems, Inc. that can be integrated into conventional Hypertext Markup Language (xe2x80x9cHTMLxe2x80x9d) browsers, and which allows a document server to provide the browser with documents as well as with executable code. The executable code is automatically loaded from the document server if the HTML browser determines that it does not have the appropriate code already resident on the user machine.
Typically, the executable code takes the form of application programs known as xe2x80x9cApplets,xe2x80x9d comprising xe2x80x9cbytecodesxe2x80x9d that are machine independent. These Applets are then interpreted by operating system specific applet interpreters (virtual machines). For example, a current Internet/Web browser implementation using the Java(trademark) language is the HotJava(trademark) browser, also developed by Sun Microsystems, Inc.
The platform-independent nature of Java(trademark) class files allow developers to write a single version of their application, and then to deploy the application on a wide variety of different hardware and operating systems. Moreover, the Java(trademark) platform implements a very advanced security model. According to this security model, a user can run untrusted Java(trademark) applications and be certain that the integrity of his or her system and personal data is never compromised. For example, as is well known, a Java(trademark) application may be run in a xe2x80x9csandboxxe2x80x9d that prevents it from causing any harm or from gaining access to private information stored on a user""s system or local network.
As mentioned above, currently, a common way of deploying Java(trademark) applications across a network is by using Java(trademark) Applets. Applets are typically downloaded and executed by a Java(trademark)-enabled web-browser, and make it possible to deploy Java(trademark) software over the web with no installation needed by the user. Unfortunately, the use of Applets on the World Wide Web and on intranets has not yet been as popular as one would expect. This situation is primarily due to two factors: First, browser vendors have been hesitant to incorporate both the newest version and one or more earlier versions of the Java(trademark) platform into their products. Second, not all applications fit well into a browser window, and this makes the Applet deployment model awkward to use.
Thus, what is needed is a technology that provides a xe2x80x9cone-clickxe2x80x9d net-centric deployment model for software programs (such as Java(trademark) applications) that is not browser-dependent. The apparatus and method that is described herein according to aspects of the present invention provides a browser-integrated, yet browser independent, solution that allows developers to use the latest Java(trademark) technology in their applications, and to deploy them through any web browser, whether the browser is Java(trademark)-enabled or not. Furthermore, the present invention complements the Applet model by providing a solution for deploying an application in situations where the application""s lifetime and/or screen real estate requirements renders the Applet approach impractical. Furthermore, the present invention can also be seen as an enabling technology for a wide variety of other technologies. These and other features and advantages of the present invention will be presented in more detail in the following specification of the invention and in the associated figures.
A browser-independent and automatic apparatus and method for receiving, installing, and launching applications from a browser is described. According to one embodiment, a helper application is registered with a browser for a specified file type. When the browser encounters a link to a metafile of the specified file type, the file is downloaded to the requesting system and the helper application is invoked to process the downloaded file. In the context of a Java(trademark) implementation, the downloaded metafile comprises a short launch file specification for a Java(trademark) application, and specifies a classpath as a set of Universal Resource Identifiers (xe2x80x9cURIsxe2x80x9d), a Java(trademark) Runtime Environment (xe2x80x9cJRExe2x80x9d) version, security considerations, and other relevant information concerning the Java(trademark) application to be executed. According to aspects of the present invention, automatic installation of Java(trademark) archive files (xe2x80x9cJAR filesxe2x80x9d) and class files based on the URIs from which they are downloaded is implemented, automatic updates and versioning are supported without any central administration, and automatic installation of multiple JREs is facilitated. Embodiments of the present invention may also be used to facilitate other applications, such as launching Java(trademark) applications directly from a browser without having to execute them within the browser, and to tie web contents to the appropriate corresponding viewer application.